package com.xg.demo.listener;

import org.springframework.boot.context.event.ApplicationStartingEvent;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;

/**
 * Created with IntelliJ IDEA.
 *
 * @author hans
 * @version 1.0
 * @date 2023/04/24/14:46
 * @description 自定义监听器
 * <p>
 * 1、实现 ApplicationListener 接口，在泛型中指定要监听的事件类型
 * 如果事件类型是 ApplicationEvent 则表示监听所有的事件
 * 如果是具体的某个类型，比如 ApplicationStartingEvent 则表示监听容器开始的事件
 * <p>
 * 2、需要把该监听器在 spring.factories 文件中配置
 */
public class MyApplicationStartingEventListener implements ApplicationListener<ApplicationStartingEvent> {
    /**
     * 1、监听全部事件
     * ApplicationEvent
     */
//    @Override
//    public void onApplicationEvent(ApplicationEvent applicationEvent) {
//        System.out.println("MyApplicationStartingEventListener--->" + applicationEvent);
//    }

    /**
     * 2、监听特定的事件
     * ApplicationStartingEvent
     */
    @Override
    public void onApplicationEvent(ApplicationStartingEvent applicationStartingEvent) {
        System.out.println("MyApplicationStartingEventListener--->" + applicationStartingEvent);
    }
}
